Introdução à estatística para os estudos da linguagem

Mahayana Godoy

julho/2025

Apresentação

Ementa

Neste minicurso, faremos uma introdução a conceitos básicos da estatística descritiva e inferencial. A partir do uso do software R, veremos como manipular conjuntos de dados, elaborar gráficos e obter medidas descritivas de posição, dispersão e contagem. Também serão discutidos conceitos básicos de testes de hipóteses e aplicação prática de alguns testes como teste-t, correlação e qui-quadrado. As aulas contarão com sessões práticas de análise de dados oriundos de estudos linguísticos. Não é preciso familiaridade com o R para participar.

AVISO! Como esse é um curso de carga horária muito reduzida, optei por demonstrar algumas análises práticas com o R, e, por isso, precisei tomar alguns atalhos ao abordar probabilidades e a parte mais teórica da estatística inferencial. Uma formação sólida em estatística (algo que está muito além de um curso de 9h) passa pelo estudo de probabilidade, distribuições, erro-padrão, intervalo de confiança e outros conceitos que não teremos tempo de abordar aqui. Não pare por aqui! A ideia do curso é despertar sua curiosidade e seu interesse pelo campo da análise quantitativa. Ao fim deste documento há sugestão de materiais suplementares para o estudo de estatística.

Metodologia

Vamos trabalhar os conceitos do curso tentando responder a algumas perguntas que interessam a pesquisas linguísticas.



Este material foi feito para servir como base às aulas do minicurso ministrado na III Escola de Estudos Linguísticos do GEL, e talvez não funcione bem sozinho. Vou interromper o fluxo durante as aulas para demonstrar alguns detalhes que não estão aqui, de modo a deixar alguns aspectos apresentados mais claros ou a apontar algumas de suas limitações.

Em caso de dúvida, sobretudo acerca de como criar projetos e importar arquivos, consulte no link a seguir os primeiros vídeos do meu curso online de estatística para linguistas:

https://abre.ai/estatistica-linguistas

É preciso ter o R e o RStudio instalados para acompanhar o curso.



Bloco 1

Nossa ferramenta: por que usar o R?

R, RStudio e seu Ambiente de Programação

Nesse tutorial, usamos o ambiente RStudio para escrever e rodar nossos códigos. Ele é uma interface que permite escrever o código e ver seus resultados em quatro paineis diferentes.

Vamos criar um novo projeto no R, uma pasta onde colocaremos todos os arquivos necessários para esse minicurso.

  • Abra o RStudio.

  • Você deverá ver uma tela semelhante à figura seguinte:


  • Vá em File > New Project


  • Selecione New Directory para criar o seu projeto um diretório novo (um diretório é uma pasta)


  • Informe que seu arquivo será do tipo New Project


  • Use a função browse para encontrar o espaço no seu computador onde você quer criar a pasta do seu projeto (seta 1 na próxima figura).

  • Nomeie seu projeto como quiser: eu dei o nome de ElingGEL_2025 (seta 2 na próxima figura).

  • Crie o projeto (seta 3 na próxima figura)


  • Você verá que agora o cabeçalho do RStudio mudou, indicando que você está trabalhando a partir da pasta recém criada (seta 1 na próxima figura).

  • Dentro dessa pasta, você tem agora o seu arquivo de extensão .RProj (seta 2 na próxima figura). Sempre que quiser trabalhar nos arquivos que estão dentro dessa pasta, basta abrir esse projeto.


  • Se você abrir o diretório onde criou a pasta do seu projeto, vai ver que lá está a nova pasta recém-criada e, dentro dela, o arquivo .RProj (ver imagem seguinte). Sempre que quiser trabalhar nesse projeto, basta clicar nesse ícone. Ele abrirá o RStudio assumindo como diretório principal essa pasta, como vimos na imagem anterior.


  • Importe para essa nova pasta os materiais do minicurso que você baixou no github. São eles:


  • dados: uma pasta com os conjuntos de dados que serão usados no curso

  • ElingGEL2025.r: tutorial que você vai usar para o curso

  • ElingGEL2025.html: arquivo com o texto do curso, para consulta posterior



Volte ao RStudio. Você verá que o painel do canto inferior direito, na aba Files, mostrará os documentos presentes na pasta onde está alocado seu projeto.


ATENÇÃO!! Se os seus arquivos não estiverem na mesma pasta que o arquivo .Rproj recém-criado, você não conseguirá acessar esses arquivos com os códigos deste curso.

  • Abra o script Eling_GEL2025.r clicando sobre ele.


Agora a janela do programa está dividida em quatro painéis principais e estamos prontos para começar.

Tomando a imagem anterior como referência, temos:

  • 1 - Canto superior esquerdo: aqui temos o editor de texto. Vamos escrever nossos códigos nesta área. Quando fizer um script novo, você pode criá-lo ao apertar as teclas Ctrl+Shift+N, ou pode selecionar File > New File > R Script no menu. Para salvar, faça o mesmo que você faria para um documento de word (Crtl+Shift+S ou File > Save) e salve sempre dentro do projeto R em que você está trabalhando. Esse arquivo será um documento de extensão .r que poderá ser compartilhado.

  • 2 - Canto inferior esquerdo: é o chamado prompt. É nele que os comandos são rodados. Você mandará executar um comando no editor de texto e a execução ocorrerá nesta janela.

  • 3 - Canto superior direito: possui as abas Environment, History, Connections e Build. A mais importante para este workshop é a aba Environment, onde podemos verificar quais variáveis estão presentes na memória do programa.

  • 4 - Canto inferior direito: possui diversas abas chamadas Files, Plots, Packages, Help e Viewer. É neste painel que veremos os gráficos plotados e os arquivos de ajuda. Em um projeto R, a aba Files mostra os arquivos presentes na pasta.

Nós vamos escrever todos os comandos no canto superior esquerdo e rodá-los com o atalho Ctrl+Enter.

Você verá que algumas linhas de código começam com o símbolo #. Esse símbolo indica que tudo que há ali é um comentário, e portanto o programa não tentará rodá-lo como um código executável.

Se o resultado for algo numérico, ele aparecerá no canto inferior esquerdo; se for um gráfico, aparecerá no canto inferior direito.

Pacotes usados no curso

O R vem “de fábrica” com algumas funções nativas instaladas. Por ser um software aberto, a comunidade usuária desenvolve pacotes para fins específicos e os compartilha para uso.

Um dos pacotes mais usados para manipulação de dados é o dplyr, e para visualização gráfica é o ggplot2. Ambos os pacotes integram o tidyverse, uma coleção de pacotes usados por Hadley Hickman.

Para instalar esse pacote no seu computador, garanta que haja acesso à internet e rode o código a seguir. Você deve deixar o cursor sobre a linha e apertar CTRL+Enter.

## instalar pacote

install.packages("tidyverse")

Você só precisa instalar o pacote que vai usar uma vez.

Entretanto, sempre que você abrir o R, precisará carregar todos os pacotes que pretende usar.

Para carregar o pacote, use a função library()

## carregando o pacote para o curso

library(tidyverse)

Se você tentar usar uma função do pacote sem carregá-lo, vai rececer uma mensagem de erro dizendo que o R não conseguiu localizar essa função

IMPORTANTE: Leia as mensagens de erro que o R te dá, pois elas te ajudam a resolver o seu problema.

Estatística e Linguística: o que analisar?

Para motivar nosso primero encontro, vamos pensar e levantar hipóteses sobre a seguinte questão:



Quando fazemos análises estatísticas, procuramos relação entre variáveis que quantificam os fenômenos estudados.

Operacionalizar uma hipótese de pesquisa sempre passa por quantificar, de alguma maneira, os conceitos que integram essa hipótese.

Por exemplo:


Nessa pergunta, temos a relação entre uma variável x que (suspeitamos) está correlacionada a uma variável y, ambas quantitativas (ver Godoy e Guimarães (2024) para mais detalhes sobre operacionalização de perguntas de pesquisa).

y ~ x

Antes de fazemos qualquer análise estatística, precisamos conhecer os dados coletados. Isso significa fazer uma boa estatística descritiva dos dados.

Precisamos tirar medidas descritivas e visualizar sua distribuição por meio de um gráfico. Vamos começar pela estatística descritiva.

Organizar conjuntos de dados

  • Se eu quero testar a correlação entre uma variável x e uma variável y, eu preciso que as duas estejam corretamente identificadas em colunas diferentes em uma planilha.

  • A seguir, podemos ver que concretude e categorial gramatical estão codificadas em duas colunas diferentes, o que nos permite relacioná-las posteriormente.


Dicas:

  • Não use cores para indicar diferenças entre os dados: crie uma variável para isso.

  • Se sua variável é qualitativa/categórica (isto é, não é um número), como no caso de categoria gramatical, gênero, idioma, etc., não use números para identificá-las: use uma etiqueta simples e de fácil compreensão.

Importar conjuntos de dados no R

Vamos começar nossas análises com o conjunto de dados esplex_2025.csv, que está dentro da pasta dados que você baixou no github do curso.

Esses dados são um subconjunto dos dados usados em Godoy (2021). Conjugam métricas de categoria gramatical, concretude, imageabilidade e frequência dos 100 nomes e 100 verbos mais frequentes do conjunto EsPal (Duchon et al. 2013), que agrega medidas linguísticas e psicolinguísticas para palavras do espanhol.

Importamos esse conjunto de dados para o R e inspecionamos suas variáveis.

## carregando conjunto de dados

esplex <- read.csv("dados/esplex_2025.csv")

## inspecionando o conjunto de dados
str(esplex)
## 'data.frame':    200 obs. of  5 variables:
##  $ palavra       : chr  "abrir" "acabar" "aceptar" "actuar" ...
##  $ categoria     : chr  "VERBO" "VERBO" "VERBO" "VERBO" ...
##  $ concretude    : num  4.19 3.97 4.09 3.41 3.66 ...
##  $ imageabilidade: num  5.31 4.47 3.84 4 3.71 ...
##  $ frq           : num  49.1 48.2 62.3 56.9 414.5 ...


Primeiro, você precisa garantir que as variáveis estão organizadas em colunas (vetores) em um dataframe.

Nesse conjunto de dados, temos as seguintes variáveis:


  • palavra: palavra do espanhol

  • categoria: categoria gramatical da palavra

  • concretude: nota de concretude da palavra

  • img: nota de imageabilidade da palavra

  • frq: frequência por milhão da palavra.


A função str() nos informou que a variável categoria é formada por caracteres (chr), enquanto concretude é numérica (num).

Inspecionando níveis de uma variável categórica

  • Para ver os níveis de uma variável categórica, a função unique() é bastante útil.

  • Essa função retorna os valores únicos de uma variável.

  • O símbolo $ é usado para identificar a coluna que se pretende acessar dentro de um dataframe.

## conferir níveis da variável categoria

unique(esplex$categoria)
## [1] "VERBO" "NOME"
  • A mesma função retorna todos os valores únicos para uma variável numérica. Isso às vezes é útil, mas não é o caso aqui.
## conferir níveis da variável concretude

unique(esplex$concretude)
##   [1] 4.190 3.971 4.094 3.409 3.656 6.113 3.119 5.480 3.059 3.811 4.384 3.100
##  [13] 3.711 2.539 3.403 4.194 3.530 2.625 4.773 3.860 5.631 2.438 4.890 5.339
##  [25] 5.590 3.898 4.165 3.314 3.946 3.277 3.825 3.748 3.921 3.483 3.819 3.834
##  [37] 5.119 3.161 5.713 3.843 3.739 4.247 3.707 3.265 3.261 4.897 2.738 3.245
##  [49] 2.522 4.029 3.826 3.691 4.960 4.024 5.380 3.416 4.030 3.933 3.568 4.910
##  [61] 4.280 3.759 5.337 4.543 3.904 3.110 3.299 3.793 3.973 3.654 4.640 4.122
##  [73] 4.183 5.903 3.810 2.308 5.286 2.809 2.171 5.683 3.809 5.398 2.996 4.563
##  [85] 3.434 3.353 3.835 4.017 5.856 4.732 3.895 3.543 4.045 4.004 4.226 6.212
##  [97] 4.861 1.985 6.315 2.321 6.293 2.488 3.378 5.256 5.600 3.823 2.481 6.111
## [109] 4.089 3.194 6.546 4.262 5.231 3.578 5.814 4.229 5.969 5.044 4.401 3.448
## [121] 5.172 3.741 6.079 5.484 2.349 3.757 3.586 3.503 3.137 3.660 3.298 3.989
## [133] 3.485 4.412 3.361 3.752 4.016 3.674 5.591 3.872 2.937 2.837 3.217 4.997
## [145] 3.438 3.754 5.369 4.464 4.901 2.976 4.667 4.133 2.582 3.954 3.650 4.824
## [157] 2.932 4.293 4.802 6.271 3.447 3.617 3.906 3.632 3.669 4.819 3.145 2.674
## [169] 4.369 2.212 2.843 4.147 5.065 3.603 3.433 3.291 5.680 2.186 3.182 4.449
## [181] 4.965 3.216 3.986 6.085 2.401 2.245 3.463 4.419 3.822 5.676 4.918 4.059
## [193] 4.242

Medidas descritivas

Média

  • Para variáveis numéricas, costumamos reportar as medidas que as descrevem: amplitude, média, mediana, moda, desvio-padrão, desvio interquartílico etc..

  • A mais conhecida delas é a média.

  • A média é uma medida de tendência central que informa o valor médio de um conjunto de valores.

## média de concretude

mean(esplex$concretude)
## [1] 4.035555

Agrupando dados para obter medidas descritivas

  • Será que as notas médias de concretude para cada uma das categorias gramaticais é a mesma?

  • Precisamos agrupar os dados por categoria e extrair essas medidas.

  • Para fazer isso, vamor usar ferramentas do dplyr, um conjunto de funções que já está incluso no pacote tidyverse.

  • O código utilizado para fazer estas manipulações é, em geral, mais limpo e enxuto do que os códigos tradicionais do R.

  • O dplyr possui funções bastante simples, mas que se usadas recursivamente, produzem resultados bastante variados.

  • As funções que vamos usar são:

    • group_by(): agrupa dados para realizar operações

    • summarise(): resume múltiplos valores a apenas um

  • Vamos começar por esses dois últimos comandos.

  • O código abaixo faz três operações

    • Linha 1: toma o dataframe esplex

    • Linha 2: agrupa seus dados por categoria

    • Linha 3: resume seus resultados de acordo com o que se pede

esplex %>%                ## Linha 1
  group_by(categoria) %>% ## Linha 2
  summarise()             ## Linha 3
## # A tibble: 2 × 1
##   categoria
##   <chr>    
## 1 NOME     
## 2 VERBO
  • No caso acima, não definimos os argumentos de summarise(), então essa função não nos retornou nenhum valor.

  • Vamos pedir para ele dar uma medida resumida de concretude: a média.

esplex %>%                      ## Linha 1    
  group_by(categoria) %>%       ## Linha 2    
  summarise(mean(concretude))   ## Linha 3  
## # A tibble: 2 × 2
##   categoria `mean(concretude)`
##   <chr>                  <dbl>
## 1 NOME                    4.23
## 2 VERBO                   3.84


  • Os resultados foram o que você esperava?

  • Também podemos pedir o resumo de quantas observações há por categoria no conjunto de dados; isso é feito com a função n(). Vemos que há 100 observações por categoria.

esplex %>%                      ## Linha 1    
  group_by(categoria) %>%       ## Linha 2    
  summarise(mean(concretude),   ## Linha 3  
            n())  
## # A tibble: 2 × 3
##   categoria `mean(concretude)` `n()`
##   <chr>                  <dbl> <int>
## 1 NOME                    4.23   100
## 2 VERBO                   3.84   100


  • Podemos até dar um nome para essas colunas que estamos criando, para ficar mais fácil de ler a tabela.
esplex %>%                              ## Linha 1    
  group_by(categoria) %>%               ## Linha 2    
  summarise(media = mean(concretude),   ## Linha 3  
            n.obs = n())  
## # A tibble: 2 × 3
##   categoria media n.obs
##   <chr>     <dbl> <int>
## 1 NOME       4.23   100
## 2 VERBO      3.84   100


  • Você deve ter visto que, ao fim de cada linha, usamos a função %>%.

  • A função %>% se chama pipe e serve para levar o output de uma linha como input para a linha seguinte.

  • Para não precisar ficar digitando os três caracteres sempre que quiser usar o pipe, use o atalho: SHIFT+CTRL+M


Prática!

Ananias (2024) tinha por hipótese inicial que existe uma relação entre iconicidade e categoria gramatical.

Para testar essa hipótese, a autora coletou notas de iconicidade (numa escala de -5 a 5) para mais de 500 palavras do português.

Segundo a autora, onomatopeias e interjeições devem ser as palavras mais icônicas do léxico. Na sequência, devemos ver adjetivos, pois essa classe costuma evocar categorias perceptuais (brilho, cor, forma, tamanho) relacionadas a simbolismos sonoros. Por fim, havia a hipótese de que verbos e substantivos teriam mais ou menos as mesmas notas de iconicidade.

O arquivo ananias2024_subconjunto.csv é um subconjunto dos seus dados. Nele, você tem as seguintes colunas:

palavra: palavra do português

categoria: categoria gramatical da palavra

icon: nota média de iconicidade por palavra

producao.30m: porcentagem de crianças de 30 meses que produziam a palavra (segundo dados do MacArthur-Bates Communicative Development Inventory para o português)


Você deverá:

  • Importar o conjunto de dados.

  • Conferir quais são os níveis da variável categoria gramatical.

  • Extrair a média de iconicidade por categoria gramatical e o número de observações.

  • Responder: qual a categoria gramatical com a maior média? E a menor?

  • Responder: há o mesmo número de observações por categoria?


Visualizando distribuição de dados: histograma

  • Será que a média é um bom indicativo dos nossos dados?

  • Será que esses valores estão bem espalhados entre as notas possíveis, que iam de 1 a 7?

  • O histograma serve como uma representação aproximada da distribuição da variável que estamos analisando.

  • Para construí-lo, uma variável quantitativa é dividida em intervalos.


  • Podemos comparar o gráfico com as notas para entender melhor.
# ordenando notas em ordem crescente e apresentando as 10 primeiras

sort(esplex$concretude)[1:10]
##  [1] 1.985 2.171 2.186 2.212 2.245 2.308 2.321 2.349 2.401 2.438


  • Em qual desses gráficos os dados estão mais espalhados?
Histograma da variável imageabilidade de esplex (A) e de um conjunto de dados simulado (B).
Histograma da variável imageabilidade de esplex (A) e de um conjunto de dados simulado (B).


  • A média permite saber alguma coisa sobre a dispersão dos dados?

Amplitude e desvio-padrão

  • Medidas de dispersão mostram como os dados estão distribuídos.

  • Duas medidas de dispersão muito comuns são amplitude e desvio-padrão.

  • A amplitude é definida como a diferença entre o máximo e o mínimo em um conjunto de dados.

# valores minimo e maximo de imageabilidade

range(esplex$imageabilidade)
## [1] 1.715 6.788
# amplitude da imageabilidade

diff(range(esplex$imageabilidade))
## [1] 5.073


  • O desvio-padrão talvez seja a medida mais usada para informar a dispersão dos dados; ele é calculado a partir da média e número de observações.
### calculando o desvio padrao
# calculando diferenca entre media e cada observacao

diferenca <- mean(esplex$imageabilidade)-esplex$imageabilidade

# soma dos quadrados das diferencas

soma.quadrados <-sum(diferenca^2)

# divisao da soma dos quadrados por n-1

divisao<-soma.quadrados/(length(esplex$imageabilidade)-1)

# raiz quadrada da divisao = desvio - padrao

desvio.padrao <- sqrt(divisao)

# desvio padrao de imageabilidade

desvio.padrao
## [1] 1.173241
### fim do calculo


  • Na prática: quanto mais próximo de zero, menos dispersos estão os dados.
# desvio-padrao de imageabilidade 

sd(esplex$imageabilidade)
## [1] 1.173241

Prática!

  • Extraia o valor do desvio-padrão de cada classe gramatical para as notas de concretude no conjunto de dados esplex.

  • Você consegue identificar a qual categoria gramatical cada um dos histogramas a seguir pertence com base nos seus desvio-padrão?


Distribuições assimétricas e medidas descritivas


Imagine que você é um agente de turismo e recebe a seguinte demanda:

  • Indicar destino de férias para três grupos de 50 pessoas (homens e mulheres), com média de aproximadamente 32 anos.

  • Quais suas sugestões?


  • Esses três grupos são semelhantes?
Distribuições etárias para grupos de turistas.
Distribuições etárias para grupos de turistas.


  • Gráficos são importantes para conhecermos nossas distribuições e decidirmos se há uma boa medida de dispersão e posição para descrevê-la!

Mediana

  • Quando lidamos com distribuições assimétricas com caudas longas à esquerda ou à direita, é comum reportarmos a mediana, uma outra medida de tendência central.

  • A mediana que divide a amostra na metade, ou seja, 50% dos valores da amostra estão abaixo do valor da mediana, enquanto os outros 50% estão acima.

## criar um vetor
x <- c(3.1, 4.2, 7.2, 7.4, 5.5)

## colocar em ordem crescente
sort(x)
## [1] 3.1 4.2 5.5 7.2 7.4
## extrair mediana
median(x)
## [1] 5.5
## extrair media
mean(x)
## [1] 5.48
  • Uma vantagem da mediana é que ela é pouco sensível a valores extremos.
## criar um vetor
x <- c(3.1, 4.2, 70.2, 7.4, 5.5)

## colocar em ordem crescente
sort(x)
## [1]  3.1  4.2  5.5  7.4 70.2
## extrair mediana
median(x)
## [1] 5.5
## extrair media
mean(x)
## [1] 18.08
  • Comparar valores de média e mediana é um bom indicativo de saber se a cauda da distribuição é simétrica ou se pende mais para a direita ou para a esquerda.

  • Algumas medidas em linguística quase sempre têm uma distribuição com cauda longa à direita.

Distribiução da frequência por milhão das palavras de esplex, indicando média (linha tracejada) e mediana (linha pontilhada)
Distribiução da frequência por milhão das palavras de esplex, indicando média (linha tracejada) e mediana (linha pontilhada)

Prática!

  • Extraia as médias e medianas de concretude, imageabilidade e frequência por categoria no conjunto de dados esplex.

  • Comparando esses valores, como saber qual distribuição é mais simétrica e qual é menos simétrica? (lembrando que isso é apenas um primeiro indício, que deve ser conferido posteriormente com análise gráfica dos dados)


Comparando distribuições graficamente: boxplot

  • O histograma nos informa a forma geral da distribuição dos dados. O boxplot adiciona informações importantes, como a mediana e os quartis.

  • O quartil divide a amostra de 4 partes, ou seja, cada quartil compreende 25% das observações.

Exemplo de um boxplot.
Exemplo de um boxplot.


  • O gráfico a seguir traz os boxplot de frequência por categoria.

  • Podemos ver nele a distribuição assimétrica dos dados.

Boxplot da variável frequência por categoria.
Boxplot da variável frequência por categoria.


  • Ajuda um pouco melhor a visualização se representarmos as observações dos dados através de pontos.

  • Também vamos mudar a cor para distinguir melhor os dados.

Boxplot da variável frequência por categoria.
Boxplot da variável frequência por categoria.


  • É bem fácil ver a relação entre boxplot e histogramas se colocarmos os dois no mesmo eixo
Histograma e Boxplot da variável frequência para a categoria NOME. No histograma, a linha pontinhada representa a mediana.
Histograma e Boxplot da variável frequência para a categoria NOME. No histograma, a linha pontinhada representa a mediana.
Histograma e Boxplot da variável frequência para a categoria NOME. No histograma, a linha pontinhada representa a mediana.
Histograma e Boxplot da variável frequência para a categoria NOME. No histograma, a linha pontinhada representa a mediana.

Desvio interquartílico

  • A medida de dispersão relativa aos quartis de uma distribuição é o desvio inter-quartílico.

  • Essa medida é a diferença entre \(Q_1\) e \(Q_3\).

# medidas de posicao e dispersao para frq

esplex %>% 
  group_by(categoria) %>% 
  summarise(media = mean(frq), sd(frq), mediana = median(frq), desvio.iqr = IQR(frq))
## # A tibble: 2 × 5
##   categoria media `sd(frq)` mediana desvio.iqr
##   <chr>     <dbl>     <dbl>   <dbl>      <dbl>
## 1 NOME       394.     193.    317.       216. 
## 2 VERBO      104.      98.9    69.3       51.9

Outliers

  • As linhas que saem dos extremos das caixas têm valor da mediana e mais ou menos 1.5 desvio-interquartílico.

  • Os pontos fora desse intervalo são chamados outliers

  • Não se deve remover outlier da sua distribuição acriticamente.

  • Retirá-los simplesmente muda sua distribuição.

  • Pergunte-se se podem ser erros de medida.

  • Faça uma escolha motivada pelo fenômeno estudado, e não pela mera aplicação acrítica de fórmulas matemáticas.

Inspeção gráfica de dados

Nesse curso aprenderemos a fazer gráficos com o pacote ggplot2.

Sintaxe Básica do ggplot

  • O ggplot2 exige que os dados a serem plotados estejam em um data frame (geralmente as pesquisas em linguística trabalham com planilhas, e essas planilhas são dataframes).

  • Não é possível plotar diretamente os dados presentes em uma matriz ou um vetor.

  • Sempre teremos que transformar os dados para dataframe ou construir um dataframe com os dados que possuímos.

  • A sintaxe básica do ggplot se dá através do comando abaixo, que define duas características importantes de um gráfico:

## sintaxe básica

ggplot(dados, aes(variavel_x, variavel_y))
  • dados: o conjunto de dados a ser utilizado para trabalhar a visualização
  • aes ou estética (aesthetics): as variáveis selecionadas para plotagem, agrupamento, coloração etc

Boxplot

Como a categoria gramatical afeta a distribuição de notas de concretude?

## vamos lembrar o nome das colunas do nosso dataframe

names(esplex)
## [1] "palavra"        "categoria"      "concretude"     "imageabilidade"
## [5] "frq"
# criando a estrutura básica do nosso gráfico

ggplot(esplex, aes(x = categoria, y = concretude))


  • Se você tentou rodar o código acima, recebeu uma mensagem de erro e um gráfico em branco.

  • O erro ocorreu porque é preciso informar a geometria do gráfico, ou seja, o modo como queremos dispôr nossa informação: colunas, linhas pontos etc.

  • A geometria de um gráfico do tipo boxplot é geom_boxplot().

  • Dados, estética e geometria são três camadas obrigatórias de todo gráfico.

# adicionando a camada de geometria, indicando geometria requerida

ggplot(esplex, aes(x = categoria, y = concretude))+
  geom_boxplot()


  • Podemos deixar o gráfico mais bonito.

  • Vamos deixar os pontos mais transparentes.

  • Vamos também mudar o fundo, para que ele fique branco. Esse último passo é feito mexendo no tema do gráfico.

# ajustes na aparencia: fundo branco (tema) e alpha

ggplot(esplex, aes(x = categoria, y = concretude))+
  geom_boxplot(alpha = 0.5)+
  theme_bw()


  • Você também pode colorir o seu gráfico.

  • Se é uma coloração estética, informe na geometria.

# ajustes na aparencia: mudando cor

ggplot(esplex, aes(x = categoria, y = concretude))+
  geom_boxplot(alpha = 0.5, color = "red")+
  theme_bw()


  • Se a coloração depende de uma variável, informe em aes()
# ajustes na aparencia: ligando cor a variavel

ggplot(esplex, aes(x = categoria, y = concretude, color = categoria))+
  geom_boxplot(alpha = 0.5)+
  theme_bw()


  • Em vez de color =, você pode usar fill =. Para gráficos que têm uma área a ser preenchida, como é o caso do boxplot, isso vai pintar dentro das linhas.
# ajustes na aparencia: ligando cor a variavel (fill)

ggplot(esplex, aes(x = categoria, y = concretude, fill = categoria))+
  geom_boxplot(alpha = 0.5)+
  theme_bw()


Histogramas

  • Para fazer um histograma de uma variável, usamos a geometria geom_histogram
### histograma de concretude

ggplot(esplex, aes(concretude))+
geom_histogram()+
  theme_bw()


  • Se quiser ver os histogramas diferentes para cada um dos níveis de uma variável categórica, use facet_wrap() ao fim do gráfico.
### histograma de concretude por categoria gramatical

ggplot(esplex, aes(concretude))+
geom_histogram()+
  theme_bw()+
  facet_wrap(~ categoria)


Prática!

  1. A partir do conjunto de dados esplex, desenhe o gráfico a seguir (a cor usada é lightblue).


  1. A partir do conjunto de dados de Ananias (2024), compare a distribuição das notas de iconicidade por categoria.

  • As distribuições são normais?

  • Qual a categoria com maior iconicidade?

  • Qual a categoria com maior amplitude?

  • Agora faça o código que replique o gráfico que acabamos de ver.

Lembre-se: o boxplot mascara o tamanho amostral. Ao vermos o gráfico gerado a partir dos dados de Ananias (2024), não temos a informação de que o N de onom+int é de apenas 14, enquanto o N de substantivos é de 305. Sempre combine exploração gráfica com extração de medidas descritivas dos dados.


Resumo do bloco 1

Medidas de tendência central (ou posiçãao)

Medidas de dispersão

Funções úteis do R:



Bloco 2

Por que fazemos análise estatística?

Ao fazermos análise estatística, estamos trabalhando com probabilidades


Ao lançarmos 10 moedas, qual a p(cara) e a p(coroa)?

## calculando a probabilidade (x, size, prob)

dbinom(x=6, size=10, prob=0.5)
## [1] 0.2050781
## calculando a probabilidade (x, size, prob)

dbinom(x=7, size=10, prob=0.5)
## [1] 0.1171875
## calculando a probabilidade (x, size, prob)

dbinom(x=9, size=10, prob=0.5)
## [1] 0.009765625


Quando fazemos estatística inferencial, vemos a probabilidade dos nossos dados considerando uma distribuição de probabilidades já conhecida.

Amostra e População

  • Quando realizamos uma pesquisa, frequentemente o nosso objetivo é saber se podemos generalizar os dados daquela amostra para a população.

  • Em linguística, é muito raro coletarmos dados de toda a população; por isso, trabalhamos com amostras.

  • Usamos estimadores da amostra (\(\overline{X}\) e \(S\)) para inferir os parâmetros de uma população (\(\mu\) e \(\sigma\)).

  • Como podemos ter certeza que os estimadores da amostra correspondem aos parâmetros da população?

Selecione a linha abaixo com o cursor para ver a resposta

  • Não podemos!!!

Estatística inferencial

  • A rigor, não temos como estar absolutamente certos sobre os parâmetros de uma população.

  • Sempre trabalhamos com incertezas.

  • A estatística inferencial nos permite quantificar a nossa incerteza.

  • Que características de uma amostra nos deixam mais incertos?

Um exemplo prático



Três cenários e a nossa incerteza

  • Vamos imaginar três cenários que descrevem o experimento descrito.

  • Os triângulos correspondem às médias, os pontos correspondem aos alunos que participaram do experimento.

  • Tente descrever o que esses cenários têm de comum e o que eles têm de diferente.


  • Qual das amostras te convence mais do efeito? Em outras palavras: qual cenário te convence mais de que, ensinados com o método B, os alunos têm mais chance de terem maiores notas do que se ensinados com o método A?

(a) Cenário 1

(b) Cenário 2

(c) Cenário 3

  • Você pode ver os histogramas abaixo para ajudar na sua decisão.

Os três ingredientes da incerteza

  • Diferença entre as médias

  • Dispersão

  • Tamanho amostral


  • Esses ingredientes são a base de algumas medidas que quantificam nossa incerteza sobre: tamanho do efeito, erro-padrão, intervalo de confiança…

  • Por isso é tão importante conhecer e reportar as medidas descritivas dos nossos dados.

Erro-padrão (SE)


Uma das fórmulas para cálculo do \(SE\) da média é a seguinte:


\[\begin{equation} SE = \frac{S}{\sqrt{N}} \end{equation}\]



Ter um SE menor nos ajuda a confiar mais na nossa amostra.

Prática!

O que acontece com o SE quando o N aumenta?

O que acontece com o SE quando o S aumenta?


A seguir, temos a medida de SE das amostras de cada cenário.

  • Cenário 1: 4.66

  • Cenário 2: 10.4

  • Cenário 3: 55.41


Que medida faz com que SE do Cenário 2 seja maior que o do Cenário 1?

Que medida faz com que a SE do Cenário 3 seja tão maior que os do Cenário 1 e Cenário 2?


  • Vamos retomar a fórmula:

\[\begin{equation} SE = \frac{S}{\sqrt{N}} \end{equation}\]


  • Temos dois dos nossos ingredientes aqui:

    • Dispersão

    • Tamanho amostral


  • Onde está o terceiro, a diferença entre as médias?!

Estatística t : quantificando nossas incertezas

\[\begin{equation} t = \frac{\overline{X}_1 - \overline{X}_2}{SE} \end{equation}\]


Prática!

Qual dos três cenários terá um menor valor t?

E qual terá o maior valor t?

Selecione as linhas abaixo com o cursor para ver a resposta:

  • Cenário 1: t = -43.58

  • Cenário 2: t = -6.63

  • Cenário 3: t = -1.21

Se a diferença entre as médias for 0, isto é, se os dois grupos que estamos contrastando têm a mesma média, qual será o valor de t?

O que aumenta a nossa confiança de que há diferença entre dois grupos: um t maior ou um t menor?


Teste de hipóteses

A hipótese nula

  • Chamamos de hipótese nula a hipótese de que não há diferença entre os dois grupos contrastados (i.e., eles vêm de uma mesma população).

  • O símbola da Hipótese Nula é \(H_{0}\)

  • No caso do nosso exemplo, podemos definir a \(H_{0}\) da seguinte maneira:

\[H_{0}: \mu_A = \mu_B\] ou \[H_{0}: \mu_A - \mu_B = 0\]

  • A Hipótese Alternativa, oposto da \(H_{0}\), pressupõe que há diferença entre os grupos contrastados.

  • O símbola da Hipótese Alternativa é \(H_{A}\)

  • No caso do nosso exemplo, podemos definir a \(H_{A}\) da seguinte maneira:

\[H_{A}: \mu_A \neq \mu_B\] ou \[H_{A}: \mu_A - \mu_B \neq 0\]

  • Perceba que usamos \(\mu\), que diz respeito ao parâmetro, pois a hipótese nula define hipóteses a partir da população

Resumindo

Quando fazemos o tipo de estatística frequentista que temos aqui, todas as nossas inferências são feitas tomando por base a hipótese nula definida para uma população.

A partir dessa hipótese, coletamos dados de nossa amostra e fazemos testes que nos dizem quão incompatível é essa amostra pressupondo que a hipótese nula seja verdadeira (no nosso caso, presumindo que, de fato, \(\mu_A - \mu_B = 0\) ).

Portanto, testes estatísticos do tipo que descrevemos aqui não nos dizem nada sobre a hipótese alternativa.



  • Os nossos próximos passos devem ser os seguintes:

    – Calcular o valor \(t\) na comparação das duas amostras (nos três cenários)

    – Conferir a probabilidade desse valor dada a \(H_0\)


Distribuição empírica x Distribuição teórica

Qual a probabilidade de eu tirar o número 6 com 1 lançamento de dado de 6 faces?

Distribuição teórica assumindo que cada face tem p = 0.1667 (A) e distribuição empírica de 20 lançamentos consecutivos de um dado de 6 faces (B)
Distribuição teórica assumindo que cada face tem p = 0.1667 (A) e distribuição empírica de 20 lançamentos consecutivos de um dado de 6 faces (B)

Distribuição \(t\)



Prática!

  • A probabilidade de um \(t\) igual ou maior a 2 será maior para uma distribuição de n = 1 ou de n = 50?

  • Vamos lembrar que, no Cenário 3, o \(t\) é igual a -1.21.

  • Vejamos abaixo a probabilidade de um valor \(t\) tão ou mais extremo que esse valor para uma amostra de \(n = 4\).


  • Probabilidade de um \(t\) de +/-1.21 ou mais extremo para uma amostra de \(n = 4\) é igual a é de 0.44, dada a hipótese nula.

  • Ou, para \(t\) = -1.21 com um \(n\) = 4, \(p\) = 0.44

Aqui, estamos considerando +/ -1.21 porque nossa hipótese alternativa era de que \(\mu_{A}\) é diferente de \(\mu_{B}\), mas não definimos se seria maior ou menor. Por isso, olhamos o efeito nas duas caudas da distribuição.

  • Essa probabilidade é baixa ou alta?

  • Vamos ver a mesma situação para os outros cenários.

  • Lembremos que

    – Cenário 1: \(t\) = -43.58

    – Cenário 2: \(t\) = -6.63


  • A probabilidade de \(t\) no Cenário 1 é menor que 2,2e-16

  • A probabilidade de \(t\) no Cenário 2 é menor que 3,167e-10

  • Isso é muito ou pouco? O que fazemos com isso?


Valor \(p\)

Voltando ao exemplo


Probabilidade de um \(t\) de -1.21 ou mais extremo para uma amostra de \(n = 4\) é igual a é de 0.44.


Ou, para \(t\) = -1.21 com um \(n\) = 4, \(p\) = 0.44


REJEITAMOS A HIPÓTESE NULA


Prática!

Para o Cenário 1 e o Cenário 2, podemos rejeitar a hipótese nula?


O que não é o valor p

  • O valor p não diz nada sobre a \(H_A\).

  • Um valor p de 0,3 não indica que a \(H_A\) tem 70% chance de estar correta e tampouco que a \(H_0\) tem 30% chande de estar correta.

  • Não rejeitar a \(H_0\) não é o mesmo que dizer que ela é verdadeira.

  • Rejeitar a \(H_0\) não é o mesmo que dizer que \(H_A\) é verdadeira.

Fazendo um teste-t no R

## importando conjuntos de dados

cenario1 <- read.csv("dados/cenario1.csv")
cenario2 <- read.csv("dados/cenario1.csv")
cenario3 <- read.csv("dados/cenario1.csv")
## cenário 1

head(cenario1, 10)
##    metodo notas
## 1       A   381
## 2       A   394
## 3       A   405
## 4       A   377
## 5       A   404
## 6       A   401
## 7       A   402
## 8       A   422
## 9       A   376
## 10      A   425
## cenário 1

t.test(notas ~ metodo, amostra1)
## 
##  Welch Two Sample t-test
## 
## data:  notas by metodo
## t = -43.577, df = 184.06, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group A and group B is not equal to 0
## 95 percent confidence interval:
##  -130.6593 -119.3407
## sample estimates:
## mean in group A mean in group B 
##             400             525

Realizamos um teste-t para comparar as notas dos métodos A e B. O resultado indicou que a diferença entre as médias é estatisticamente significativa (t(184.06) = -43.58, p < 0.0001)

## cenário 2

t.test(notas ~ metodo, cenario2)
## 
##  Welch Two Sample t-test
## 
## data:  notas by metodo
## t = -43.577, df = 184.06, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group A and group B is not equal to 0
## 95 percent confidence interval:
##  -130.6593 -119.3407
## sample estimates:
## mean in group A mean in group B 
##             400             525
## cenário 3

t.test(notas ~ metodo, cenario3)
## 
##  Welch Two Sample t-test
## 
## data:  notas by metodo
## t = -43.577, df = 184.06, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group A and group B is not equal to 0
## 95 percent confidence interval:
##  -130.6593 -119.3407
## sample estimates:
## mean in group A mean in group B 
##             400             525

Prática!

Ontem comparamos a nota de concretude de nomes e verbos a partir do conjunto de dados esplex.csv.

Nossa pergunta de pesquisa era a seguinte:

> Será que a percepção de concretude de uma palavra é afetada por sua classe gramatical?

Você deverá realizar um teste de hipóteses para responder essa pergunta.

  • Defina a \(H_0\) e a \(H_A\) para seu teste.

  • Faça um teste-t para comparar a média dos dois grupos.

  • É possível rejeitar a hipótese nula?


Resumo do bloco 2

Teste de hipóteses:

  • Assumimos a \(H_0\)

  • Calculamos uma estatística (nesse caso, t) a partir das amostras coletadas

  • Vemos a probabilidade dessa estatística calculada dada a \(H_0\): esse é o nosso valor \(p\)

  • Quando eu decido que probabilidade é um valor pouco provável dada a \(H_0\)?

Funções úteis do R

  • teste.t()


Bloco 3

Contrastando duas variáveis numéricas

Vamos nos fazer uma nova pergunta sobre os dados do conjunto esplex:

Gráficos

Já coletamos médias de concretude e imageabilidade. Agora vamos inspecionar essa relação graficamente.

Se você ainda não importou, importe o conjunto de dados.

## importar dados (se ainda não tiver importado)
esplex <- read.csv("dados/esplex_2025.csv")

str(esplex)
## 'data.frame':    200 obs. of  5 variables:
##  $ palavra       : chr  "abrir" "acabar" "aceptar" "actuar" ...
##  $ categoria     : chr  "VERBO" "VERBO" "VERBO" "VERBO" ...
##  $ concretude    : num  4.19 3.97 4.09 3.41 3.66 ...
##  $ imageabilidade: num  5.31 4.47 3.84 4 3.71 ...
##  $ frq           : num  49.1 48.2 62.3 56.9 414.5 ...
# adicionando a camada de geometria, indicando geometria de pontos

ggplot(esplex, aes(x = concretude, y = imageabilidade))


# adicionando a camada de geometria, indicando geometria de pontos
## alterando tema e o alpha (transparencia) dos pontos

ggplot(esplex, aes(x = concretude, y = imageabilidade))+
  geom_point(alpha = 0.5)+
  theme_bw()



Prática!

Ananias (2024) tinha por hipótese inicial que a iconicidade facilita a aquisição lexical; portanto, palavras aprendidas mais cedo tendem a ser mais icônicas.

Vamos relembrar aqui as colunas de ananias2024_subconjunto.csv:

palavra: palavra do português

categoria: categoria gramatical da palavra

icon: nota média de iconicidade por palavra

producao.30m: proporção (de 0 a 1) de crianças de 30 meses que produziam a palavra (segundo dados do MacArthur-Bates Communicative Development Inventory para o português). Quanto maior a proporção, mais cedo se aprende aquela palavra.


Desenhe um gráfico que correlacione iconicidade e idade de aquisição (operacionalizada a partir da proporção de crianças de 30 meses que produziam a palavra).

Analisando o gráfico, você consegue ver alguma tendência específica na relação entre as duas variáveis?

O passo a passo que você deve seguir é:

  • Importar o conjunto de dados para o RStudio.

  • Conferir as variáveis e seus nomes.

  • Desenhar o gráfico com o ggplot.


Correlação e valor r

Exemplos de valores de correlações entre duas variáveis numéricas.
Exemplos de valores de correlações entre duas variáveis numéricas.



Prática!

  • Considerando os gráficos que fizemos anteriormente a partir de esplex.csv e ananias2024_subconjunto.csv, você diria que os \(r\) associados a cada caso são positivos ou negativos?

  • Qual r tem maior valor absoluto?


Extraindo coeficiente de correlação do conjunto de dados

  • A função cor() retorna o coeficiente \(r\) para uma comparação de duas amostras.
## coeficiente r entre concretude e imageabilidade

cor(esplex$concretude, esplex$imageabilidade)
## [1] 0.7798876

Prática!

Extraia o coeficiente de correlação entre idade de aquisição e concretude dos dados de ananias2024_subconjunto.csv.


Valor \(r\) e relações lineares

  • O valor \(r\) é calculado para relações lineares entre duas variáveis.

  • Isso significa que, no intervalo analisado, mudanças em x causariam o mesmo efeito em y independente do valor dessa última variável.

  • Em bom português: podemos acompanhar as relações x e y com uma linha (se os pontos caem todo sobre a linha, o valor de \(r\)) é 1 ou -1.

  • É muito importante analisar graficamente seus dados, pois o \(r\) pode não ser uma boa medida para relações não lineares.

Fonte: https://medium.com/@krypsa/understanding-linear-vs-nonlinear-relationships-in-data-science-45c05dd2d357


  • Também precisamos estar atentos a variáveis que podem influenciar na direção do efeito reportado: explore bem seus dados, com análises gráficas e descritivas, antes de fazer qualquer análise inferencial.

Teste de hipóteses

\[H_{0}: \rho = 0\]

\[H_{A}: \rho \neq 0\]

## teste de correlacao

cor.test(esplex$imageabilidade, esplex$concretude)
## 
##  Pearson's product-moment correlation
## 
## data:  esplex$imageabilidade and esplex$concretude
## t = 17.533, df = 198, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.7189373 0.8289358
## sample estimates:
##       cor 
## 0.7798876

Realizamos um teste de correlação entre as notas de imageabilidade e concretude. A correlação entre as duas variáveis foi positiva (\(r\) = 0.78 ) e significativa (\(t\)(198) = 17.53, p< 0.0001)


Prática!

A partir dos dados ananias2024_subconjunto.csv, teste a hipótese de que palavras mais icônicas costumam ser aprendidas mais facilmente pelas crianças.

Foi possível rejeitar a \(H_0\)?


Alguns requisitos (e limitações) dos testes que aprendemos

Os testes que vimos neste curso são confiáveis apenas se observadas algumas condições.

No caso da violação da normalidade, é possível buscar testes não-paramétricos ou operar alguma transformação não-linear nos dados (a mais comum em linguística é a logaritmica, para dados com cauda longa à direita).

Para violação da independência dos dados (mais comum em estudos experimentais na linguística), o recomendado é buscar uma análise por meio de modelos mistos.

De modo geral, o teste-t e o teste de correlação são boas maneiras de se entender como funciona um teste de hipóteses. Na prática, quem trabalha com metodologias quantitativa precisará buscar testes mais complexos por meio de modelos lineares (tanto teste-t quanto teste de correlação são casos específicos de modelos lineares).

Algumas questões com testes de hipóteses

Múltiplos testes e o valor \(p\)

  • Vamos simular uma amostra com 20 observações

  • Essa amostra será gerada assumindo \(\mu\) = 0, \(\sigma\) = 1

## simulando amostra de uma população de média 0 e desvio-padrao 1 
rnorm(20)
##  [1] -0.8803930  0.7782903  0.7686086 -1.1541475 -1.4466186 -1.2292040
##  [7]  2.1449310 -0.3221494 -1.5072634 -0.4351767 -1.2111671 -0.1480669
## [13]  0.6123420  0.6699250  0.5577712 -1.5671498 -0.3107193 -1.6817825
## [19]  2.2020142 -0.8912376
  • Podemos fazer um teste-t em amostras obtidas a partir de uma mesma população: em tese, todo teste deveria nos dizer para não rejeitar a \(H_0\)
t.test(rnorm(20), rnorm(20))
## 
##  Welch Two Sample t-test
## 
## data:  rnorm(20) and rnorm(20)
## t = 1.0596, df = 37.089, p-value = 0.2962
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -0.2957227  0.9441971
## sample estimates:
##  mean of x  mean of y 
##  0.1835542 -0.1406830
  • Se repetirmos esse teste várias vezes, é muito provável que um dos resultados nos permita rejeitar a \(H_0\), mesmo que saibamos que isso não é o correto (afinal, geramos as amostras a partir de uma mesma população)

Improvável ≠ Impossível

  • Isso nos lembra que um valor \(t\) improvável dada a \(H_0\) não é impossível

Fonte: https://www.reneshbedre.com/blog/ttest.html

Tipos de erro

  • Jamais poderemos ter certeza de que rejeitamos a \(H_0\) quando ela não deveria ser rejeitada.

    – Erro do Tipo I: falso positivo

    – Erro do Tipo II: falso negativo

  • Aumento no número de testes inflaciona taxa de Erro do Tipo I

  • Para evitar: correção de valor-p por métodos como Bonferroni, FDR, Tukey…

Resumindo

  • Estatística é só uma ferramenta, e não um oráculo

  • É importante conhecer os limites do que um teste estatístico pode dizer

  • Abrace a incerteza!

  • Faça mais experimentos (de replicação ou complementares)

Um disclaimer

  • Tudo o que vimos hoje faz sentido dentro de um tipo de estatística chamada frequentista

  • O procedimento básico é (a) calcular uma medida estatística cuja distribuição é conhecida (como a \(t\)); (b) calcular quão provável é o valor da estatística obtida dada a hipótese nula

  • Há outras maneiras de se fazer cálculos estatísticos (como a estatística bayesiana)

Para saber mais

Para um tutorial sobre manipulação e visualização gráfica de dados:

Para uma introdução mais sólida a análises estatísticas (feita para linguistas):

Para uma introdução à estatística através de modelos lineares:

Sobre alguns problemas com análises quantitativas e como contorná-los

Referências

Ananias, T. C. (2024). Iconicidade no léxico do português brasileiro. Dissertação de Mestrado. Universidade Federal do Rio Grande do Norte.

Duchon, A., Perea, M., Sebastián-Gallés, N., Marti, A. T., and Carreiras, M. (2013). Espal: One-stop shopping for spanish word properties. Behavior Research Methods, 45:1246–1258.

Godoy, M. C. Guimarães, M. P. (2024) Métodos experimentais em pesquisa linguística. In: Rodrigues, Passeggi, Campos, Duque e Silva (orgs.). Metodologia da pesquisa em linguística teórica, descritiva e experimental. Natal: EDUFRN.

Estivalet G.L., Meunier F. (2015) The Brazilian Portuguese Lexicon: An Instrument for Psycholinguistic Research. PLoS ONE 10(12): e0144016. https://doi.org/10.1371/journal.pone.0144016